#ifndef __DISPLAYSTREAM__
#define __DISPLAYSTREAM__

#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <list>
 #include <iostream>

//OpenCV include
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

#include "DctCompression.h"
#include "RGBtoYUV.h"

enum VideoStatus
{
	PAUSE,
	RECORD,
	PLAY
};

class DisplayStream
{
	public:
		DisplayStream(cv::VideoCapture &streamSource);
		DWORD Run();
		void Record(FILE *file, cv::Mat &camFrame);
		void Read(FILE *file);

	private:
		bool record;
		int status;
		RGBtoYUV    *RGB2YUV;
		DctCompression *dctCompress;
		std::list<cv::Mat> listImg;
		cv::VideoCapture &streamSource;
		cv::Mat PauseImg;
};
#endif